package ucla.axelia.controlador.servicios;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Order;

import ucla.axelia.controlador.interfaces.IServicioAdministracionEjecutarActividadNoDefinida;
import ucla.axelia.modelo.beans.EventualidadActividad;
import ucla.axelia.modelo.dao.ServicioActividadDAO;
import ucla.axelia.modelo.dao.ServicioActividadEjecutadaDAO;
import ucla.axelia.modelo.dao.ServicioActividadPlanificadaDAO;
import ucla.axelia.modelo.dao.ServicioProgramaDAO;
import ucla.axelia.modelo.dao.ServicioRolVoluntarioDAO;
import ucla.axelia.modelo.dao.ServicioTipoActividadDAO;
import ucla.axelia.modelo.dao.ServicioTurnoDAO;
import ucla.axelia.modelo.dao.ServicioUsuarioProgramaDAO;
import ucla.axelia.modelo.dao.ServicioVoluntarioDAO;
import ucla.axelia.modelo.data.Actividad;
import ucla.axelia.modelo.data.ActividadEjecutada;
import ucla.axelia.modelo.data.ActividadPlanificada;

import com.obelisco.modelo.data.DataGenerica;
import com.obelisco.vista.inicio.Aplicacion;

public class ServicioAdministracionEjecutarActividadNoDefinida implements IServicioAdministracionEjecutarActividadNoDefinida {

	private ServicioActividadDAO servicioActividadDAO;
	private ServicioActividadEjecutadaDAO servicioActividadEjecutadaDAO;
	private ServicioUsuarioProgramaDAO servicioUsuarioProgramaDAO;
	private ServicioTipoActividadDAO servicioTipoActividadDAO;
	private ServicioRolVoluntarioDAO servicioRolVoluntarioDAO;

	
	public List buscarProgramasPorUsuarioActual() {
		String login = Aplicacion.getApp().getContexto().getUsuarioActual().getLogin();
		List result = this.servicioUsuarioProgramaDAO.buscarProgramasPorUsuario(login);
		return result;
	}
	
	public List buscarRolesVoluntario() {
		List orden = new ArrayList();
		orden.add(Order.asc("nombre"));
		return servicioRolVoluntarioDAO.buscarTodos(DataGenerica.DATA_ACTIVO, orden);
	}
	
	public List buscarTipoActividades() {
		// TODO Auto-generated method stub
		List orden = new ArrayList();
		orden.add(Order.asc("nombreTipoActividad"));
		return servicioTipoActividadDAO.buscarTodos(DataGenerica.DATA_ACTIVO, orden);
	}
	
	public void guardarActividad(Actividad actividad) {
		// TODO Auto-generated method stub
		actividad.setEventualidad(EventualidadActividad.NO_PERIODICA);
		servicioActividadDAO.guardar(actividad);
	}
	
	public void guardarActividadEjecutada(ActividadEjecutada actividadEjecutada) {
		// TODO Auto-generated method stub
		servicioActividadEjecutadaDAO.guardar(actividadEjecutada);		
	}
	

	// Getter y Setter
	public ServicioTipoActividadDAO getServicioTipoActividadDAO() {
		return servicioTipoActividadDAO;
	}
	
	public void setServicioTipoActividadDAO(
			ServicioTipoActividadDAO servicioTipoActividadDAO) {
		this.servicioTipoActividadDAO = servicioTipoActividadDAO;
	}
	
	public ServicioActividadEjecutadaDAO getServicioActividadEjecutadaDAO() {
		return servicioActividadEjecutadaDAO;
	}
	
	public void setServicioActividadEjecutadaDAO(
			ServicioActividadEjecutadaDAO servicioActividadEjecutadaDAO) {
		this.servicioActividadEjecutadaDAO = servicioActividadEjecutadaDAO;
	}
	

	public ServicioUsuarioProgramaDAO getServicioUsuarioProgramaDAO() {
		return servicioUsuarioProgramaDAO;
	}

	public void setServicioUsuarioProgramaDAO(
			ServicioUsuarioProgramaDAO servicioUsuarioProgramaDAO) {
		this.servicioUsuarioProgramaDAO = servicioUsuarioProgramaDAO;
	}

	public ServicioRolVoluntarioDAO getServicioRolVoluntarioDAO() {
		return servicioRolVoluntarioDAO;
	}

	public void setServicioRolVoluntarioDAO(
			ServicioRolVoluntarioDAO servicioRolVoluntarioDAO) {
		this.servicioRolVoluntarioDAO = servicioRolVoluntarioDAO;
	}

	public ServicioActividadDAO getServicioActividadDAO() {
		return servicioActividadDAO;
	}

	public void setServicioActividadDAO(ServicioActividadDAO servicioActividadDAO) {
		this.servicioActividadDAO = servicioActividadDAO;
	}
	
}